#pragma once

#include <util_usb_desc_base.h>

// 设备描述符
typedef struct {
	usb_desc_base_t base;	    // 描述符头
	u16_s usb_bcd;		    // USB协议版本
	usb_desc_class_t dev_class; // 类
	u8_s max_pkt_size;	    // 端点0最大包大小
	u16_s vendor_id;	    // 厂商ID
	u16_s product_id;	    // 产品ID
	u16_s dev_bcd;		    // 设备版本号
	u8_s vendor_str_idx;	    // 厂商字符串索引
	u8_s prod_str_idx;	    // 产品字符串索引
	u8_s sn_str_idx;	    // 序列号字符串索引
	u8_s cfg_nums;		    // 配置描述符数量
} __attribute__((packed)) usb_desc_dev_t;

_Static_assert(sizeof(usb_desc_dev_t) == 18,
	       "Struct usb_desc_dev_t defined error!");
